﻿using System;
using SharpSqlAnalyzer.pp.processor;
using SharpSqlAnalyzer.pp.stmtformatter.type;
using SharpSqlAnalyzer.pp.stmtformatter.type.comm;

namespace SharpSqlAnalyzer.pp.stmtformatter.builder.comm
{
	// Token: 0x02000224 RID: 548
	public class MergeStmtFormatterBuilder : AbstractStmtFormatterBuilder
	{
		// Token: 0x0600127B RID: 4731 RVA: 0x00319218 File Offset: 0x00317418
		protected internal override void initSpecialProcessorForFormatter(AbstractStmtFormatter formatterArg)
		{
			MergeStmtFormatter mergeStmtFormatter = formatterArg as MergeStmtFormatter;
			mergeStmtFormatter.addSpecialProcessor(ProcessorFactory.createCapitalisationProcessor(this.Option));
			mergeStmtFormatter.addSpecialProcessor(ProcessorFactory.createCombineWhitespaceAndClearReturnProcessor(this.Option));
			mergeStmtFormatter.addSpecialProcessor(ProcessorFactory.createCTEProcessor(this.Option, new bool?(this.Option.cteNewlineBeforeAs)));
			mergeStmtFormatter.addSpecialProcessor(ProcessorFactory.createMergeKeyWordAlignProcessor(this.Option));
			mergeStmtFormatter.addSpecialProcessor(ProcessorFactory.createAppendLineAfterMergeTableNameProcessor(this.Option));
			mergeStmtFormatter.addOnExpProcessors(ProcessorFactory.createExpressionProcessor(this.Option, new bool?(false)));
			mergeStmtFormatter.addSpecialProcessor(ProcessorFactory.createMergeWhenClauseProcessor(this.Option));
		}

		// Token: 0x0600127C RID: 4732 RVA: 0x003192B7 File Offset: 0x003174B7
		protected internal override AbstractStmtFormatter newInstanceFormatter()
		{
			return new MergeStmtFormatter();
		}
	}
}
